import { get, post } from "@/api/request";

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器添加法务审计整改单
 * @param {object} data
 * @param {array<附件传输实体>} [data.attachmentList] 附件材料
 * @param {string} [data.auditContent] 审计内容
 * @param {string} [data.auditTime] 审计时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.correctionDeadline] 整改期限
 * @param {string} [data.correctionPerson] 整改人
 * @param {string} [data.correctionRequirement] 整改要求
 * @param {string} [data.correctionStartDate] 整改开始时间
 * @param {number} [data.correctionType] 整改形式
 * @param {number} [data.correctionUnitId] 整改单位id
 * @param {number} [data.isAddCorrectionRecord] 整改记录标识
 * @param {number} [data.projectId] 项目id
 * @param {string} [data.remark] 备注
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<LawAuditCorrection页面展示实体>}
 */
export function lawAuditCorrectionAdd(data, config) {
  return post("/lawAuditCorrection/add", data, config);
}

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器删除法务审计整改单
 * @param {object} params
 * @param {string} params.id 法务审计整改单ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<LawAuditCorrection页面展示实体>}
 */
export function lawAuditCorrectionDelete(params, config) {
  return get("/lawAuditCorrection/delete", params, config);
}

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器查询法务审计整改单详情
 * @param {object} params
 * @param {string} params.id 法务审计整改单ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<LawAuditCorrectionDetailVO页面展示实体>}
 */
export function lawAuditCorrectionDetail(params, config) {
  return get("/lawAuditCorrection/detail", params, config);
}

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器导出法务审计整改单
 * @param {object} data
 * @param {string} [data.correctionDeadline] 整改结束时间
 * @param {string} [data.correctionStartDate] 整改开始时间
 * @param {string} [data.correctionUnit] 整改单位
 * @param {array<number>} [data.departmentFuzzy] departmentFuzzy
 * @param {number} [data.length] 分页大小
 * @param {number} [data.orderAsc] 排序方向
 * @param {string} [data.orderColum] 排序字段
 * @param {number} [data.pageIndex] 分页下标
 * @param {string} [data.projectName] 项目名称
 * @param {number} [data.start] 查询记录起始下标
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise}
 */
export function lawAuditCorrectionExport(data, config) {
  return post("/lawAuditCorrection/export", data, config);
}

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器分页查询法务审计整改单
 * @param {object} data
 * @param {string} [data.correctionDeadline] 整改结束时间
 * @param {string} [data.correctionStartDate] 整改开始时间
 * @param {string} [data.correctionUnit] 整改单位
 * @param {array<number>} [data.departmentFuzzy] departmentFuzzy
 * @param {number} [data.length] 分页大小
 * @param {number} [data.orderAsc] 排序方向
 * @param {string} [data.orderColum] 排序字段
 * @param {number} [data.pageIndex] 分页下标
 * @param {string} [data.projectName] 项目名称
 * @param {number} [data.start] 查询记录起始下标
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<分页返回实体<LawAuditCorrectionPageVO页面展示实体>>}
 */
export function lawAuditCorrectionList(data, config) {
  return post("/lawAuditCorrection/list", data, config);
}

/**
 * 法务审计整改单 控制器 / 法务审计整改单 控制器更新法务审计整改单
 * @param {object} data
 * @param {array<附件传输实体>} [data.attachmentList] 附件材料
 * @param {string} [data.auditContent] 审计内容
 * @param {string} [data.auditTime] 审计时间 YYYY-MM-DD HH:mm:ss
 * @param {string} [data.correctionDeadline] 整改期限
 * @param {string} [data.correctionPerson] 整改人
 * @param {string} [data.correctionRequirement] 整改要求
 * @param {string} [data.correctionStartDate] 整改开始时间
 * @param {number} [data.correctionType] 整改形式
 * @param {number} [data.correctionUnitId] 整改单位id
 * @param {number} [data.id] ID
 * @param {number} [data.isAddCorrectionRecord] 是否添加整改记录
 * @param {number} [data.projectId] 项目id
 * @param {string} [data.remark] 备注
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<LawAuditCorrection页面展示实体>}
 */
export function lawAuditCorrectionUpdate(data, config) {
  return post("/lawAuditCorrection/update", data, config);
}

/**
 * @template T
 * @typedef {Object} 分页返回实体
 * @property {T[]} content - 内容
 * @property {number} elementsNo
 * @property {number} limit
 * @property {number} number
 * @property {number} totalElements
 * @property {number} totalPages
 * @description 分页返回实体
 */

/**
 * @typedef {object} 附件传输实体 附件传输实体
 * @property {string} attUrl 附件url
 * @property {number} directoryId 目录id
 * @property {number} id 附件id
 * @property {string} originalName 原始文件名
 * @description 附件传输实体
 */

/**
 * @typedef {object} BusinessAttachDetailVO
 * @property {string} attKey 附件key
 * @property {number} attOrder 附件排序
 * @property {number} attSize 附件大小(单位:MB)
 * @property {string} attSizeString 附件大小
 * @property {string} attSuffix 附件后缀
 * @property {string} attUrl 附件url
 * @property {number} attachId 文件id
 * @property {number} attachmentType 文件类型
 * @property {number} businessId 业务ID
 * @property {string} businessType 业务类型
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建用户
 * @property {boolean} delFlag 删除标识(false:否, true:是)
 * @property {number} directoryId 目录id
 * @property {string} filename 文件名称
 * @property {number} id 附件ID
 * @property {string} originalName 原始文件名
 * @property {string} remark 备注
 * @property {string} updateTime 修改时间
 * @property {string} updateUser 修改用户
 */

/**
 * @typedef {object} LawAuditCorrection页面展示实体 法务审计整改单页面展示实体
 * @property {string} auditContent 审计内容
 * @property {string} auditTime 审计时间
 * @property {string} correctionDeadline 整改期限
 * @property {string} correctionPerson 整改人
 * @property {string} correctionRequirement 整改要求
 * @property {string} correctionStartDate 整改开始时间
 * @property {number} correctionType 整改形式
 * @property {string} correctionUnitId 整改单位ID
 * @property {string} correctiveFormId 整改单号
 * @property {string} createTime 创建时间
 * @property {string} createUser 创建用户
 * @property {number} delFlag 删除标识 (0-未删除, 1-已删除)
 * @property {number} id ID
 * @property {number} isAddCorrectionRecord 是否添加整改记录
 * @property {number} projectId 项目id
 * @property {string} remark 备注
 * @property {string} updateTime 更新时间
 * @property {string} updateUser 更新用户
 * @property {string} workOutUnit 编制单位
 * @property {string} workOutUser 编制人
 * @property {number} workOutUserId 编制人id
 * @description 法务审计整改单页面展示实体
 */

/**
 * @typedef {object} LawAuditCorrectionDetailVO页面展示实体 法务审计整改单页面展示实体
 * @property {array<BusinessAttachDetailVO>} attachmentList 整改单附件
 * @property {string} auditContent 审计内容
 * @property {string} auditTime 审计时间
 * @property {string} correctionDeadline 整改期限
 * @property {string} correctionPerson 整改人
 * @property {string} correctionRequirement 整改要求
 * @property {string} correctionStartDate 整改开始时间
 * @property {number} correctionType 整改形式
 * @property {string} correctionUnit 整改单位
 * @property {number} correctionUnitId 整改单位ID
 * @property {string} createTime 编制时间
 * @property {string} createUser 创建用户
 * @property {number} id ID
 * @property {number} isAddCorrectionRecord 是否添加整改记录
 * @property {string} projectId 项目ID
 * @property {string} projectName 项目名称
 * @property {array<LawCorrectiveRecordsDetailVO页面展示实体>} records 整改单记录
 * @property {string} remark 备注
 * @property {string} workOutUnit 编制部门
 * @property {string} workOutUser 整改单下发人
 * @description 法务审计整改单页面展示实体
 */

/**
 * @typedef {object} LawAuditCorrectionPageVO页面展示实体 法务审计整改单分页页面展示实体
 * @property {string} auditContent 审计内容
 * @property {string} correctionDeadline 整改期限
 * @property {string} correctionPerson 整改人
 * @property {number} correctionType 整改形式
 * @property {string} correctionUnit 整改单位
 * @property {string} correctiveFormId 整改单编号
 * @property {string} createUser 创建人
 * @property {number} id ID
 * @property {number} isAddCorrectionRecord 是否添加整改记录
 * @property {number} isPass 是否整改通过
 * @property {string} projectName 项目名称
 * @property {string} remark 备注
 * @property {string} workOutUser 整改下发人
 * @description 法务审计整改单分页页面展示实体
 */

/**
 * @typedef {object} LawCorrectiveRecordsDetailVO页面展示实体 法务整改单记录页面展示实体
 * @property {array<BusinessAttachDetailVO>} attachmentList 整改单记录附件
 * @property {string} correctiveReply 整改回复内容
 * @property {number} isPass 是否整改通过
 * @property {number} recordId 流程记录ID
 * @description 法务整改单记录页面展示实体
 */
